A Language for Deterministic-by-Default Parallel Programming
نویسندگان
چکیده
When using today’s common shared-memory parallel programming models, subtle errors can lead to unintended nondeterministic behavior and bugs that appear only under certain thread interleavings. In contrast, we believe that a programming model should guarantee deterministic behavior unless the programmer specifically calls for nondeterminism. We describe our implementation of such a deterministic-bydefault parallel programming language. Deterministic Parallel Java (DPJ) is an extension to Java that uses a region-based type and effect system to guarantee deterministic parallel semantics through static checking. Data in the heap is partitioned into regions, so the compiler can calculate the read and write effects of each variable access in terms of regions. Methods are annotated with effect summaries, so the effects of a full program can be checked with a modular analysis. Using this system, the compiler can verify that the effects of the different operations within each parallel region are noninterfering. The DPJ type system includes several novel features to enable expressive support for widely used parallel idioms. We describe an experimental evaluation of DPJ that shows it can express a wide range of realistic parallel programs with good performance. We also describe a method for inferring method effect summaries, which can ease the burden of writing annotations. In addition, we briefly discuss several areas of ongoing and future work in the DPJ project.
منابع مشابه
An Effect System and Language for Deterministic - by - Default Parallel Programming
This thesis presents a new, Java-based object-oriented parallel language called Deterministic Parallel Java (DPJ). DPJ uses a novel effect system to guarantee determinism by default. That means that parallel programs are guaranteed to execute deterministically unless nondeterminism is explicitly requested. This is in contrast to the shared-memory models in widespread use today, such as threads ...
متن کاملParallel Programming Must Be Deterministic by Default
In today’s widely used parallel programming models, subtle programming errors can lead to unintended nondeterministic behavior and hard to catch bugs. In contrast, we argue for a parallel programming model that is deterministic by default: deterministic behavior is guaranteed unless the programmer explicitly uses nondeterministic constructs. This goal is particularly challenging for modern obje...
متن کاملAn Application of Genetic Network Programming Model for Pricing of Basket Default Swaps (BDS)
The credit derivatives market has experienced remarkable growth over the past decade. As such, there is a growing interest in tools for pricing of the most prominent credit derivative, the credit default swap (CDS). In this paper, we propose a heuristic algorithm for pricing of basket default swaps (BDS). For this purpose, genetic network programming (GNP), which is one of the recent evolutiona...
متن کاملA Modified Discreet Particle Swarm Optimization for a Multi-level Emergency Supplies Distribution Network
Currently, the research of emergency supplies distribution and decision models mostly focus on deterministic models and exact algorithm. A few of studies have been done on the multi-level distribution network and matheuristic algorithm. In this paper, random processes theory is adopted to establish emergency supplies distribution and decision model for multi-level network. By analyzing the char...
متن کاملDeterministic Measurement of Reliability and Performance Using Explicit Colored Petri Net in Business Process Execution Language and Eflow
Today there are many techniques for web service compositions. Evaluation of quality parameters has great impact on evaluation of final product. BPEL is one of those techniques that several researches have been done on its evaluation. However, there are few researches on evaluation of QoS in eflow. This research tries to evaluate performance and reliability of eflow and BPEL through mapping them...
متن کامل